home *** CD-ROM | disk | FTP | other *** search
/ TeX 1995 July / TeX CD-ROM July 1995 (Disc 1)(Walnut Creek)(1995).ISO / macros / latex209 / contrib / astron / puntxt.c < prev    next >
C/C++ Source or Header  |  1990-07-25  |  857b  |  50 lines

  1. /* Filter a LISTSERV PUNCH format message into normal text */
  2.  
  3. #include <stdio.h>
  4. #include <string.h>
  5.  
  6. int
  7. main()
  8. {
  9.     char    buffer[81];
  10.     char    *p;
  11.     int        len, n, k;
  12.  
  13.     k = 0;
  14.     while (gets(buffer) != (char*)NULL)
  15.     {
  16.     k++;
  17.     if (strcmp(buffer,"END/") == 0)
  18.         break;
  19.     p = strchr(buffer,'/');
  20.     if (p != (char*)NULL) p = strchr(p+1,'/');
  21.     if (p != (char*)NULL) ++p;
  22.     if ( (sscanf(buffer,"%d/%d/",&len,&n) != 2) || (p == (char*)NULL) )
  23.     {
  24.         fprintf(stderr,"Conversion error on line %d = [%s]\n",k,buffer);
  25. #if 0
  26.         exit(1);
  27. #endif
  28.         n = 1;
  29.     }
  30.  
  31.     if (p != (char*)NULL)
  32.         fputs(p,stdout);
  33.     else
  34.     {
  35.         fputs("????",stdout);
  36.         fputs(buffer,stdout);
  37.     }
  38.  
  39.     for (; n > 1; --n)        /* copy continuation lines */
  40.     {
  41.         if (gets(buffer) == (char*)NULL)
  42.         break;
  43.         k++;
  44.         fputs(buffer,stdout);
  45.     }
  46.     fputc('\n',stdout);
  47.     }
  48.     exit (0);
  49. }
  50.